// pages/profile/index.ts
Page({
  data: {
    userInfo: {
      nickName: '',
      avatar: ''
    }
  },
  onLoad() {

  },
  // 鼠标移除昵称输入框后的请求
  getNickname(e) {
    console.log(e.detail.value)
    this.putNickName(e.detail.value)
  },
  //封装修改用户信息的请求
  async putNickName(nickName) {
    const res = await wx.$http.put('/userInfo', {
      nickName
    })
    console.log(res)
    if (res.code !== 10000) return wx.$utils.toast('请求发送失败')
    this.setData({
      'userInfo.nickName': nickName
    })
  },
  // 获取用户头像，可以从bindchooseavatar回调中获取到头像信息
  getAvatar(e) {
    console.log(e.detail.avatarUrl);
    this.uploadAvatar(e.detail.avatarUrl)
  },
  //封装修改用户头像的请求
  async uploadAvatar(avatarUrl) {
    wx.uploadFile({
      url: wx.$http.baseURL + '/upload', //仅为示例，非真实的接口地址
      filePath: avatarUrl, // 要上传文件资源的路径 (本地路径)
      name: 'file', //文件对应的 key
      formData: { // HTTP 请求中其他额外的 form data
        'user': 'avatar'
      },
      // 必须自己再传一下header，请求拦截器只是给wx.$http增加了拦截器
      header: {
        Authorization: getApp().token
      },
      success: (res) => { // 接口调用成功的回调函数
        console.log(res.data); // 获取的这个值 是一个字符串 我们需要把他转化成对象
        const obj = JSON.parse(res.data)
        console.log(obj);
        if (obj.code !== 10000) return wx.$utilss.toast('获取失败')
        this.setData({
          'userInfo.avatar': obj.data.url
        })
      }
    })
  }
})